<?php
//------------------------------------------------------------ Contraintes d'accès de la page

	// on vérifie que cette page est appelée à partir de l'index et que l'utilisateur a le droit d'ajout
	if(isset($_SESSION) && ($GLOBALS['USER']['level'] >= 3 || $GLOBALS['USER']['admin'])){

?>
<?php
//------------------------------------------------------------ Valeur des champs avant saisie

	$dv_nom = ""; // valeur du champ nom (ajt_nom)
	$dv_plante[] = array(); // valeur des champs plantes observées (ajt_plante[])
?>
<?php
//------------------------------------------------------------ Traitements si le formulaire a été envoyé

/********************************* Règles :

	- le nom de la liste de plantes ne peut pas être vide
	- le nom de la liste de plantes ne doit pas être déjà enregistré dans la BDD

*****************************************/

	$statut = array(); // indique le statut du traitement du formulaire (echec ou succes) - tableau contenant les messages à afficher
	$erreur = false; // indique si une erreur a été rencontrée lors du traitement
	
	trimTabByKey($_POST, "ajt_"); // appel à la fonction trimTabByKey() définie dans fonctions.php
	
  	$query_get_vegetaux = "SELECT en.CODEENTREE as entree, t.CODETAXON AS id, f.NOMFAMILLE AS famille, g.NOMGENRE AS genre, e.NOMESPECE AS espece, sesp.NOMSOUSESPECE AS sousespece, v.NOMVARIETE AS variete, sa.CODESACHETGRAINE as sachet, sm.CODESEMIS as semis, tou.CODETOUFFE as touffe, sa.REFERENCESACHETGRAINEs as refSAC, sm.REFERENCESEMIS as refSEM, tou.REFERENCETOUFFE as refTOU ";
  	$query_get_vegetaux .= "FROM entree en ";
  	$query_get_vegetaux .= "LEFT JOIN sachet_graines sa ON en.SAC_CODESACHETGRAINE = sa.CODESACHETGRAINE ";
  	$query_get_vegetaux .= "LEFT JOIN semis sm ON en.SEM_CODESEMIS = sm.CODESEMIS ";
  	$query_get_vegetaux .= "LEFT JOIN touffe tou ON en.TOU_CODETOUFFE = tou.CODETOUFFE ";
  	$query_get_vegetaux .= "JOIN taxon t ON t.CODETAXON = sa.CODETAXON OR t.CODETAXON = sm.CODETAXON OR t.CODETAXON = tou.CODETAXON ";
  	$query_get_vegetaux .= "INNER JOIN classification c ON c.CODECLASSIFICATION = t.CODECLASSIFICATION ";
  	$query_get_vegetaux .= "JOIN est_de_famille l1 INNER JOIN famille f ON f.CODEFAMILLE = l1.CODEFAMILLE AND l1.CODETAXON = t.CODETAXON AND l1.CODECLASSIFICATION = t.CODECLASSIFICATION ";
  	$query_get_vegetaux .= "JOIN appartient_a_genre l2 INNER JOIN genre g ON g.CODEGENRE = l2.CODEGENRE AND l2.CODETAXON = t.CODETAXON AND l2.CODECLASSIFICATION = t.CODECLASSIFICATION ";
  	$query_get_vegetaux .= "JOIN est_de_espece l3 INNER JOIN espece e ON e.CODEESPECE = l3.CODEESPECE AND l3.CODETAXON = t.CODETAXON AND l3.CODECLASSIFICATION = t.CODECLASSIFICATION ";
  	$query_get_vegetaux .= "LEFT JOIN est_de_sous_espece l33 INNER JOIN sous_espece sesp ON sesp.CODESOUSESPECE = l33.CODESOUSESPECE ON l33.CODETAXON = t.CODETAXON AND l33.CODECLASSIFICATION = t.CODECLASSIFICATION ";
  	$query_get_vegetaux .= "LEFT JOIN a_comme_variete l4 INNER JOIN variete v ON v.CODEVARIETE = l4.CODEVARIETE ON l4.CODETAXON = t.CODETAXON AND l4.CODECLASSIFICATION = t.CODECLASSIFICATION ";
   
   $result_get_vegetaux =  mysql_query($query_get_vegetaux, $connexion) or logError("RECUPERATION VEGETAUX-".$query_get_vegetaux."-".mysql_error());
   
   $selectPlantes = array(); // on créé un tableau qui contient la liste des Plantes ainsi que les informations de chacun
	$nb_Plantes = 0;
	while($tab_recuperation_Plantes = mysql_fetch_assoc($result_get_vegetaux)){
		$selectPlantes[$nb_Plantes] = $tab_recuperation_Plantes;
		$nb_Plantes++;
	}
	
   mysql_free_result($result_get_vegetaux);
   
   
   
   
   
   
	//---------------------------------- Contrôle des données ----------------------------------
	
	if(isset($_POST['form_sent'])){ // si le formulaire est envoyé
	
		// Contrôle des données du nom de la liste de plantes
		if(isset($_POST['ajt_nom']) && is_string($_POST['ajt_nom'])){
			if(emptyString($_POST['ajt_nom'])){
				$statut[] = "Nom de la liste de plantes vide";
				$erreur = true;
			}else{
				if(valueExists($_POST['ajt_nom'], "NOMLISTEPLANTES", "liste_plantes", $connexion) > 0){
					$statut[] = "cette liste de plantes existe déjà";
					$erreur = true;
				}else{
					$dv_nom = $_POST['ajt_nom'];
				}
			}
		}else{
			$statut[] = "Aucun nom de liste de plantes indiqué";
			$erreur = true;
		}
      
		echo count($_POST['ajt_plante'])." e".$_POST['ajt_nbPlantes'];
		
        if(isset($_POST['ajt_nbPlantes']) && is_string($_POST['ajt_nbPlantes']) && isset($_POST['ajt_plante']) && is_array($_POST['ajt_plante'])){
			$nbPlantes = count($_POST['ajt_plante']);
			if(numericInt($_POST['ajt_nbPlantes']) && $_POST['ajt_nbPlantes'] == $nbPlantes){
				$new_dv_plante = array();
				$errPlante = false;
				for($i=0; $i<$_POST['ajt_nbPlantes']; $i++){
					$ajt_plante[$i] = explode("_",$_POST['ajt_plante'][$i]);
					if(!numericInt($ajt_plante[$i][1])){
						echo $ajt_plante[$i][1]."ui ";
						$statut[] = "Format de la plante (ligne ".($i+1).") incorrect";
						$erreur = true;
						$errPlante = true;
					}else{
						if(($ajt_plante[$i][0] == "sac" && valueExists((int)$ajt_plante[$i][1], "CODESACHETGRAINE", "sachet_graines", $connexion) == 1) || ($ajt_plante[$i][0] == "sem" && valueExists((int)$ajt_plante[$i][1], "CODESEMIS", "semis", $connexion) == 1) || ($ajt_plante[0] == "tou" && valueExists((int)$ajt_plante[$i][1], "CODETOUFFE", "touffe", $connexion) == 1)){
							$new_dv_plante[$i] = $ajt_plante[$i][1];
						}else{
							$statut[] = "Un des Plantes n'existe pas";
							$erreur = true;
							$errPlante = true;
						}
					}
				}
				if(!$errPlante){
					$dv_plante = $new_dv_plante;
				}
				
			} else {
				$statut[] = "Plantes mal indiqués";
				$erreur = true;
			}
		} else {
			$statut[] = "erreur critique lors de la vérification des plantes concernées";
			$erreur = true;
		}

		
		//---------------------------------- Création de la liste de plantes ----------------------------------
	
		if(!$erreur){ // aucune erreur n'a été rencontrée jusqu'ici
		
			$query_ajout_liste_plantes = "INSERT INTO liste_plantes(NOMLISTEPLANTES) ";
			$query_ajout_liste_plantes .= "VALUES(".mysqlString($_POST['ajt_nom']).") ";
			
			$result_ajout_liste_plantes = mysql_query($query_ajout_liste_plantes, $connexion) or logError("CREATION liste de plantes-".$query_ajout_liste_plantes."-".mysql_error());
		
			if($result_ajout_liste_plantes === true){
				$idliste_plantes = mysql_insert_id($connexion);
				$statut[] = "La liste de plantes a été ajoutée";
				logAction("liste de plantes (id: ".$idliste_plantes.") AJOUTE par ".capitalise($GLOBALS['USER']['prenom'])." ".mb_strtoupper($GLOBALS['USER']['nom'])." (".$GLOBALS['USER']['login'].")");
			
				for($j=0; $j<$i; $j++){
				
					if ($ajt_plante[$j][0] == "sac") {
					
						$query_ajout_plante_ds_liste = "INSERT INTO sachetgraines_est_dans_liste(CODELISTE,CODESACHETGRAINE) VALUES($idliste_plantes,".$ajt_plante[$j][1].") ";
					
					} else if ($ajt_plante[$j][0] == "sem") {
					
						$query_ajout_plante_ds_liste = "INSERT INTO semis_est_dans_liste(CODELISTE,CODESEMIS) VALUES($idliste_plantes,".$ajt_plante[$j][1].") ";
					
					} else if ($ajt_plante[$j][0] == "tou") {
					
						$query_ajout_plante_ds_liste = "INSERT INTO touffe_est_dans_liste(CODELISTE,CODETOUFFE) VALUES($idliste_plantes,".$ajt_plante[$j][1].") ";
					
					}
					
					$result_ajout_plante_ds_liste = mysql_query($query_ajout_plante_ds_liste, $connexion) or logError("CREATION lien plante liste-".$query_ajout_plante_ds_liste."-".mysql_error());
				
					if ($result_ajout_plante_ds_liste != true) {
						$statut[] = "Erreur critique lors de l'ajout de plante dans la liste";
						$erreur = true;
					} else {
						$statut[] = "fermeture dans 2 sec...";
					}
				}
         }else{
				$statut[] = "Erreur critique lors de la création de la liste de plantes";
				$erreur = true;
			}
		
		}
		
	}
?>
<?php
//------------------------------------------------------------ Affichage du statut si le formulaire a été envoyé

	if(isset($_POST['form_sent'])){ // si le formulaire est envoyé
		
		if($erreur){
			afficherStatut($statut, 3); // appel à la fonction afficherStatut() définie dans fonctions.php
		}else{
			afficherStatut($statut, 1); // appel à la fonction afficherStatut() définie dans fonctions.php
			
			// on met à jour le champ depuis lequel cette page a été appelée
			if(isset($_GET['maj'])){ // si la page a été appelée depuis un champ
				echo "<script type=\"text/javascript\">";
				if(isset($_GET['sel'])){
					echo "ajouteOptionSelect(opener, '".str_replace("'", "\'", $_GET['maj'])."', '".$idliste_plantes."', '".str_replace("'", "\'", $_POST['ajt_nom'])."', true, true);";
				}else{
					echo "ajouteOptionSelect(opener, '".str_replace("'", "\'", $_GET['maj'])."', '".$idliste_plantes."', '".str_replace("'", "\'", $_POST['ajt_nom'])."', true, false);";
				}
				echo "</script>";
			}
			// on met à jour la page depuis laquelle cette page a été appelée
			if(isset($_GET['act'])){ // si la page d'appel doit être entièrement actualisée
				echo "<script type=\"text/javascript\">";
				echo "opener.location.reload();";
				echo "</script>";
			}
			
			closeWindow(2); // appel à la fonction closeWindow() définie dans fonctions.php
		}
	
	}

?>



<form method="post" action="popup.php?p=gestion/listeplante_ajoute_popup<?php if(isset($_GET['maj'])) echo "&amp;maj=".$_GET['maj']; if(isset($_GET['act'])) echo "&amp;act=".$_GET['act']; if(isset($_GET['sel'])) echo "&amp;sel=".$_GET['sel']; ?>">
	<table class="formulaire" style="margin: auto; width: 100%;">
		<tr>
			<th class="titre" colspan="2">Ajout d'une liste de plantes</th>
		</tr>
		<tr>
			<td style="width: 33%" class="etiquette">Nom * :</td>
			<td style="width: 67%" class="champ"><input type="text" name="ajt_nom" size="25" value="<?php echo htmlentities($dv_nom, ENT_COMPAT, "UTF-8"); ?>" /></td>
		</tr>
      <tr>
         <td class="etiquette">végétaux</td>
         <td class="champ">
         <div class="cadre-entete">Ajouter une ligne : <img class="boutonASLigne" src="images/plus.png" alt="+" title="Ajouter une ligne" onclick="ajouterLigne(1, 'plante', 1);" /></div>
				<div class="cadre-contenu" id="lstLg_plante" style="width: 355px">
					<?php
						$nbLignes = count($dv_plante);
						echo $nbLignes." i ".$nb_Plantes;
						$i=0;
						foreach($dv_plante as $id => $value){
					?>
					<div id="lg_plante_<?php echo $i+1; ?>" style="margin: 2px 0;">
						<select name="ajt_plante[]" style="width: 330px">
                           <?php
                              if($nb_Plantes > 0){
                                 $old_famille = null;
                                 foreach($selectPlantes as $plante){
                                    if($old_famille != $plante['famille']){
                                       if($old_famille != null){
                                          echo "</optgroup>";
                                       }
                                       echo "<optgroup label=\"".htmlentities(capitalise($plante['famille']), ENT_COMPAT, "UTF-8")."\">";
                                       $old_famille = $plante['famille'];
                                    }
										if ($plante['sachet'] != NULL) {
											echo "<option value=\"sac_".$plante['sachet']."\">".((isset($plante['refSAC']) && $plante['refSAC'] != "")?"[".$plante['refSAC']."] ":"").htmlentities(capitalise($plante['genre']), ENT_NOQUOTES, "UTF-8")." ".htmlentities($plante['espece'], ENT_NOQUOTES, "UTF-8")." ".htmlentities($plante['sousespece'], ENT_NOQUOTES, "UTF-8")." ".htmlentities($plante['variete'], ENT_NOQUOTES, "UTF-8");
                                            echo " (sachet de graines)</option>";
										}
										if ($plante['semis'] != NULL) {
											echo "<option value=\"sem_".$plante['semis']."\">".((isset($plante['refSEM']) && $plante['refSEM'] != "")?"[".$plante['refSEM']."] ":"").htmlentities(capitalise($plante['genre']), ENT_NOQUOTES, "UTF-8")." ".htmlentities($plante['espece'], ENT_NOQUOTES, "UTF-8")." ".htmlentities($plante['sousespece'], ENT_NOQUOTES, "UTF-8")." ".htmlentities($plante['variete'], ENT_NOQUOTES, "UTF-8");
                                            echo " (semis)</option>";
										}
										if ($plante['touffe'] != NULL) {
											echo "<option value=\"tou_".$plante['touffe']."\">".((isset($plante['refTOU']) && $plante['refTOU'] != "")?"[".$plante['refTOU']."] ":"").htmlentities(capitalise($plante['genre']), ENT_NOQUOTES, "UTF-8")." ".htmlentities($plante['espece'], ENT_NOQUOTES, "UTF-8")." ".htmlentities($plante['sousespece'], ENT_NOQUOTES, "UTF-8")." ".htmlentities($plante['variete'], ENT_NOQUOTES, "UTF-8");
                                            echo " (touffe)</option>";
										}
                                    }
                                 unset($plante);
                                 echo "</optgroup>";
                              }else{
                                 echo "<option disabled=\"disabled\">Aucune plante</option>";
                              }
                           ?>
						</select>
						<img id="btnLg_plante_<?php echo $i+1; ?>" class="boutonASLigne" src="images/moins.png" alt="-" title="Supprimer cette ligne" onclick="supprimerLigne(<?php echo $i+1; ?>, 'plante', 1);" />
					</div>
					<?php
							$i++;					
						}
						unset($id);
						unset($value);
					?>
				</div>
				<input type="hidden" id="nbLg_plante" name="ajt_nbPlantes" value="<?php echo $nbLignes; ?>" />
         </td>
      </tr>
		<tr>
			<td class="envoi" colspan="2"><input type="submit" value="Ajouter" /><input type="hidden" name="form_sent" value="1" /></td>
		</tr>
		<tr>
			<td class="legende" colspan="2">* = champs obligatoires</td>
		</tr>
	</table>
</form>
<?php
//------------------------------------------------------------ Accès refusé à la page

	}else{
		if(isset($_SESSION)){
			include("pages/401.htm");
		}
	}

?>